home *** CD-ROM | disk | FTP | other *** search
/ Amiga Plus Special 25 / AMIGAplus Sonderheft 25 (2000)(Falke)(DE)(Track 1 of 4)[!].iso / Updates / PowerPC / pdflib / bind / vb / pdfclock.bas < prev    next >
BASIC Source File  |  2000-05-16  |  2KB  |  100 lines

  1. Attribute VB_Name = "pdfclock"
  2. ' pdfclock.bas
  3. ' Requires the PDFlib type library
  4. ' Load pdflib_vb.tlb via Project, References, Browse
  5.  
  6. Option Explicit
  7.  
  8. Sub main()
  9.     Dim p As Long
  10.     Dim err, font As Integer
  11.     Dim alpha, tm_hour, tm_min, tm_sec As Double
  12.     Const RADIUS! = 200
  13.     Const MARGIN! = 20
  14.     
  15.     p = PDF_new
  16.     
  17.     ' Open new PDF file
  18.     err = PDF_open_file(p, "pdfclock_vb.pdf")
  19.     If (err = -1) Then
  20.         MsgBox "Couldn't open PDF file!"
  21.         End
  22.     End If
  23.     
  24.     PDF_set_info p, "Creator", "pdfclock.bas"
  25.     PDF_set_info p, "Author", "Thomas Merz"
  26.     PDF_set_info p, "Title", "PDF clock (Visual Basic)"
  27.  
  28.     ' start a new page
  29.     PDF_begin_page p, 2 * (RADIUS + MARGIN), 2 * (RADIUS + MARGIN)
  30.     PDF_translate p, RADIUS + MARGIN, RADIUS + MARGIN
  31.     PDF_setrgbcolor p, 0, 0, 1
  32.     PDF_save (p)
  33.  
  34.     ' minute strokes
  35.     PDF_setlinewidth p, 2
  36.     
  37.     For alpha = 0 To 354 Step 6
  38.         PDF_rotate p, 6
  39.         PDF_moveto p, RADIUS, 0
  40.         PDF_lineto p, RADIUS - MARGIN / 3, 0
  41.         PDF_stroke p
  42.     Next alpha
  43.  
  44.     PDF_restore p
  45.     PDF_save p
  46.     
  47.     ' 5 minute strokes
  48.     PDF_setlinewidth p, 3
  49.     For alpha = 0 To 330 Step 30
  50.         PDF_rotate p, 30
  51.         PDF_moveto p, RADIUS, 0
  52.         PDF_lineto p, RADIUS - MARGIN, 0
  53.         PDF_stroke p
  54.     Next alpha
  55.  
  56.     tm_hour = Hour(Now)
  57.     tm_min = Minute(Now)
  58.     tm_sec = Second(Now)
  59.  
  60.     ' draw hour hand
  61.     PDF_save p
  62.     PDF_rotate p, -((tm_min / 60) + tm_hour - 3) * 30
  63.     PDF_moveto p, -RADIUS / 10, -RADIUS / 20
  64.     PDF_lineto p, RADIUS / 2, 0#
  65.     PDF_lineto p, -RADIUS / 10, RADIUS / 20
  66.     PDF_closepath p
  67.     PDF_fill p
  68.     PDF_restore p
  69.  
  70.     ' draw minute hand
  71.     PDF_save p
  72.     PDF_rotate p, -((tm_sec / 60) + tm_min - 15) * 6
  73.     PDF_moveto p, -RADIUS / 10, -RADIUS / 20
  74.     PDF_lineto p, RADIUS * 0.8, 0
  75.     PDF_lineto p, -RADIUS / 10, RADIUS / 20
  76.     PDF_closepath p
  77.     PDF_fill p
  78.     PDF_restore p
  79.  
  80.     ' draw second hand
  81.     PDF_setrgbcolor p, 1, 0, 0
  82.     PDF_setlinewidth p, 2
  83.     PDF_save p
  84.     PDF_rotate p, -(tm_sec - 15) * 6
  85.     PDF_moveto p, -RADIUS / 5, 0
  86.     PDF_lineto p, RADIUS, 0
  87.     PDF_stroke p
  88.     PDF_restore p
  89.  
  90.     ' draw little circle at center
  91.     PDF_circle p, 0, 0, RADIUS / 30
  92.     PDF_fill p
  93.             
  94.     PDF_restore p
  95.     PDF_end_page p        ' finish page
  96.     
  97.     PDF_close p            ' close PDF document
  98.     PDF_delete p
  99. End Sub
  100.